www.gusucode.com > ROCKOA PHP协同办公OA办公系统 v2.0PHP源码程序 > ROCKOA PHP协同办公OA办公系统 v2.0/rockoa_v2.0/rockoa_v2.0/webrock/index/home/ext_homescript.js

    var defaults= {margin:0,columnWidth:1,collapsible:true,closable:true},
	date 	= js.now(),
	mar		= '8',
	defitem = 'daib,work,wannl|todo,gong,zxkq';
if(adminhomeitems=='')adminhomeitems = defitem;
var margin	= '0 '+mar+' '+mar+' 0',
	heights	= 225,
	objpan	= false,win=false,setitemla = [];

var guanlihome = function(){
	if(!win){
		var storea = function(nas, oi){
			var sta = setitemla[oi];
			return Ext.create('Ext.data.TreeStore',{
				root: {
					text: nas,expanded: true,
					children: sta
				}
			});
		}
		var grupps = 'ddgroup_'+rand+'';
		var cans = winopt({title:'首页桌面项管理',icon:gicons('house'),width:640,layout:'hbox',border:false,maximizable:false,resizable:false,
			items:[{
				flex:0.25,split:true,height:300,xtype: 'treepanel',title:'可选项',rootVisible:true,store:storea('可选项',0),viewConfig: {
                    plugins: {ptype: 'treeviewdragdrop',ddGroup: grupps,appendOnly: true,sortOnDrop: true,containerScroll: true}
                }
			},{
				flex:0.25,split:true,height:300,xtype: 'treepanel',title:'第一列项',itemId:'slie1',store:storea('拖动到这',1),viewConfig: {
                    plugins: {ptype: 'treeviewdragdrop',ddGroup: grupps,sortOnDrop: true, containerScroll: true}
                }
			},{
				flex:0.25,split:true,height:300,xtype: 'treepanel',title:'第二列项',itemId:'slie2',store:storea('拖动到这', 2),viewConfig: {
                    plugins: {ptype: 'treeviewdragdrop',ddGroup: grupps,sortOnDrop: true, containerScroll: true}
                }
			},{
				flex:0.25,split:true,height:300,xtype: 'treepanel',title:'第三列项',itemId:'slie3',store:storea('拖动到这',3),viewConfig: {
                    plugins: {ptype: 'treeviewdragdrop',ddGroup: grupps,sortOnDrop: true, containerScroll: true}
                }
			}],
			buttons:[{
				text:'拖动到树根节点即可移动项',xtype:'tbtext',id:'msg_'+rand+''
			},{
				text:'保存',icon:gicons('ok'),handler:function(){setitionla()}
			},{
				text:'取消',handler:function(){win.close()},icon:gicons('cancel')
			}]
		});
		win = Ext.create('Ext.Window',cans);
	}
	win.show();
}

function setitionla(){
	var s  = '',s1 = '',i,o;
	for(i=1; i<=3 ;i++){
		s1 = getstrite(i);
		if(s1)s+='|'+s1;
	}
	if(s!='')s = s.substr(1);
	o = getcmp('msg_'+rand+'');
	if(s==''){
		o.setText(js.getmsg('首页项至少要有一项'));
		return;
	}
	o.setText(js.getmsg('保存中...','#ff6600'));
	$.post(js.getajaxurl('savehome', mode, dir),{homeitems:s}, function(da){
		o.setText(js.getmsg('保存成功','green'));
		adminhomeitems = s;
		reloadtabs('home');
	});
}

function getstrite(oi){
	var stoe = win.down('#slie'+oi+'').getStore().getRootNode();
	var a    = stoe.childNodes,i,s='';
	for(i=0; i<a.length; i++){
		s+=','+a[i].data.id;
	}
	if(s!='')s = s.substr(1);
	return s;
}
	
var remenu  = Ext.widget({
	xtype: 'menu',
	items: [{
		text: '进入页面',
		handler: function () {
			var a = objpan.up('grid');
			if(a.abcnum){
				addtabs(a.title, a.abcurl, a.abcnum);
			}
		}
	},'-',{
		text:'首页桌面项管理',handler:guanlihome
	}]
});	

var tools	= [{
	type:'refresh',handler:function(){this.up('grid').storereload()},tooltip:'刷新'
},{
	type:'plus',callback:function(pan, tool){
		objpan = this;
		remenu.showBy(tool.el);
	}
}];

function openurl(a){
	var url = a.url,
		num = a.menunum,
		txt = a.title,
		typ = a.opentype;
	if(isempt(url))return;	
	if(url=='check'){
		url = 'flow,applylist,'+a.num+',opentype='+typ+'';
		num = ''+a.num+'list_'+typ+'';
	}
	if(typeof(typ)=='number'){
		url+=',opentype='+typ+'';
		num+=''+typ+'';
	}
	addtabs(txt, url, num);
}

var huirendhi =function(v,a,r){
	if(a.column.dataIndex=='mess')a.tdAttr = 'data-qtip="'+v+'"';
	if(r.raw.status=='1')return '<font color=#888888>'+v+'</font>';
	return v;
}

var homeitems	= {
	daib:{
		title:'待办/处理',margin:margin,bbarbool:false,hideHeaders:false,xtype:'rockgrid',closable:false,frame: true,padding:0,border:false,
		url:js.getajaxurl('daicl','home','index'),tools:tools,id:'daishen_'+rand+'',icon:gicons('time'),abcurl:'flow,apply,check',abcnum:'daicheck',
		fields:['stotal','xuhao'],
		columns:[{
			text:'',dataIndex:'xuhao',width: 35
		},{
			text:'名称',flex:1,dataIndex:'title',sortable:false,align:'left',renderer:function(v,v1,a1){
				var d=a1.data;
				var s = v;
				if(d.stotal>0)s+=' <font color=red>('+d.stotal+')</font>';
				return s;
			}
		}],
		click:function(a,v){
			openurl(v.raw);
		}
	},
	
	gong:{
		xtype:'rockgrid',title:'信息公告',bbarbool:false,tablename:'infor',defaultorder:'xu,optdt desc',frame:true,padding:0,border:false,url:publicstore('infor','system'),storeafteraction:'inforgong',storebeforeaction:'beforeinforgong',
		storefields:'title,id,typename,istt,optdt',pageSize:6,tools:tools,closable:false,abcurl:'system,infor,gong',abcnum:'gong',
		margin:margin,icon:gicons('sound_none'),fields:['xuhao','optdt','days'],
		columns:[{
			text:'',dataIndex:'xuhao',width: 35
		},{
			text:'类型',dataIndex:'typename',width:80,renderer:function(v, m, r){
				var jg = r.get('days');
				if(jg<5)v='<b>'+v+'</b>';
				return v;
			}
		},{
			text:'标题',flex:1,dataIndex:'title',align:'left',renderer:function(v, m, r){
				var jg = r.get('days');
				if(jg<5){
					v='<b>'+v+'</b> <img src="images/new.gif">';
				}	
				v+=' <font color=#555555>['+r.get('optdt').substr(0,10)+']</font>';
				return v;
			}
		}],
		dblclick:function(o, r){
			var url = js.getajaxurl('$gong','view','taskrun',{uid:adminid,id:r.data.id,jmbool:true});
			js.open(url, 800);
		}
	},
	
	wannl:{
		xtype: 'calendarpanel',height:350,title:'万年历',bodyStyle:(stylebody[0] != '2')?'background:white':'',bbartext:false,margin:margin,closable:false,icon:gicons('calendar'),frame: true,padding:0,border:false
	},
	
	work:{
		xtype:'rockgrid',title:'今日['+js.now('Y-m-d 周W')+']事项/任务',margin:margin,tools:tools,bbarbool:false,closable:false,tablename:'work',frame: true,padding:0,border:false,url:js.getajaxurl('gettoday','workh|work','work'),abcnum:'worklist',abcurl:'work,work,list,atype=0',pageSize:30,icon:gicons('pencil'),fields:['state','startdt'],
		columns:[{
			text:'',dataIndex:'xuhao',width: 35
		},{
			text:'类型',dataIndex:'type',width:80
		},{
			text:'标题',flex:1,dataIndex:'title',align:'left'
		},{
			text:'状态',dataIndex:'state',width:60,autowidth:true
		},{
			text:'时间',dataIndex:'startdt',width:150,autowidth:true
		}],
		dblclick:function(a, v){
			var d = v.raw;
			if(d.tabsurl && d.tabstitle && d.tabsnum){
				addtabs(d.tabstitle, d.tabsurl, d.tabsnum);
			}else{
				if(!isempt(d.url))js.open(d.url, 800);
			}
		}
	},
	
	todo:{
		xtype:'rockgrid',title:'提醒信息',tablename:'todo',keywhere:'and uid='+adminid+'',pageSize:5,tools:tools,margin:margin,frame: true,padding:0,border:false,
		bbarbool:false,defaultorder:'`status`,id desc',url:publicstore('todo','person'),closable:false,abcnum:'todo',abcurl:'person,todo',
		storeafteraction:'jisanstatela',icon:gicons('lightbulb'),fields:['xuhao','optdt'],
		columns:[{
			text:'',dataIndex:'xuhao',width: 35
		},{
			text:'类型',dataIndex:'title',width:80,renderer:huirendhi,autowidth:true
		},{
			text:'内容',dataIndex:'mess',flex:1,align:'left',renderer:huirendhi
		},{
			text:'时间',dataIndex:'optdt',autowidth:true,renderer:huirendhi
		}],
		load:function(){
			$('#tixing_count').html('('+this.getData('wdcount')+')');
		},
		dblclick:function(a, v){
			var url = v.raw.url;
			if(!isempt(url))js.open(url, 800);
		}
	},
	
	zxkq:{
		xtype:'rockgrid',title:'在线考勤',tablename:'kq_dkjl',keywhere:'and uid='+adminid+'',pageSize:5,tools:tools,margin:margin,frame: true,padding:0,border:false,url:js.getajaxurl('dkjl', 'kaoqin', 'person'),keywhere:'[A][K]b.id[D][adminid]',
		bbarbool:false,closable:false,abcnum:'mydkjl',abcurl:'person,kaoqin,dkjl',icon:gicons('clock'),
		columns:[{
			text:'',dataIndex:'xuhao',width: 35
		},{
			text:'姓名',dataIndex:'name',flex:0.5,search:true,qz:'b.'
		},{
			text:'时间',dataIndex:'checktime',flex:1,search:true
		},{
			text:'星期',dataIndex:'cnweek',flex:0.4
		}],
		bbar:['->',{xtype:'tbtext',id:'dkjlmsg_'+rand},{text:'添加打卡记录',icon:gicons('clock_add'),handler:function(o){adddkjl(o)}}]
	}
};

function adddkjl(o){
	var o1 = getcmp('dkjlmsg_'+rand);
	o1.setText(js.getmsg('添加打卡记录...'));
	$.get(js.getajaxurl('adddkjl', 'kaoqin', 'person'), function(su){
		if(su == 'success'){
			o.up('rockgrid').storereload();
			o1.setText(js.getmsg('添加成功','green'));
		}else{
			o1.setText(js.getmsg(su));
		}
	});
}

function getpitmes(){
	var a1 = adminhomeitems.split('|'),h  = 1/a1.length,i,j,a=[],lie0=[],a2,ao,ystr=',',ags,itsems;
	setitemla = [[],[],[],[]];
	for(i=0; i<a1.length; i++){
		a2 = a1[i].split(',');
		lie0=[];
		setitemla[i+1] = [];
		for(j=0; j<a2.length; j++){
			ao = homeitems[a2[j]];
			if(ao){
				lie0.push(ao);
				ystr+=''+a2[j]+',';
				setitemla[i+1].push({text:ao.title,icon:ao.icon,id:a2[j],leaf:true});
			}
		}
		itsems = {
			xtype: 'container',columnWidth:h,layout:'column',defaults:defaults,items:lie0,border:false,margin:''+mar+' 0 0 '+mar+''
		};
		if(i>0)itsems.margin = ''+mar+' 0 0 0';
		a.push(itsems);
	}
	for(ags in homeitems){
		if(ystr.indexOf(','+ags+',')<0){
			setitemla[0].push({text:homeitems[ags].title,leaf:true,icon:homeitems[ags].icon,id:ags,leaf:true});
		}
	}
	return a;
}
var panel={
	layout:'column',autoScroll:true,border:false,
	items:getpitmes(),
	listeners:{
		destroy:function(){
			if(win)Ext.destroy(win);
		}
	}
};

reloaddaiban = function(){
	if(getcmp('daishen_'+rand+''))getcmp('daishen_'+rand+'').storereload();
}
return {
	'panel':panel,
	tabson:{
		show:function(){
			
		}
	},
	init:function(){
		getcmp('index_btn_homeitems').handler = function(){
			guanlihome();
		}
	}
};